Docker啓用GPU
睡睡唸
上面168. Docker build失敗跳出killed169. Nginx的負載平衡,
這兩篇都是為了要達到內部AI平臺再用,
不要讓每個人的電腦都自己裝一堆程式。
正文
電腦裝完顯卡驅動後,要讓docker識別,
還需要額外裝 NVIDIA Container Toolkit
照著官方文件來,挺快的。
這邊記錄ubuntu的方法,其他的安裝方式,請參考上面文件
- 更新
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
&& \
sudo apt-get update
- 安裝
sudo apt-get install -y nvidia-container-toolkit
- docker設定 (containerd、CRI-O的話,參考上面連結)
sudo nvidia-ctk runtime configure --runtime=docker
- 重啓
sudo systemctl restart containerd
- 驗證
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
顯示下面的資料就表示有了。
Docker-compose
如果使用docker compose的話,
須在yaml上面增加一些設定,command 到 capabilities
當然也可以指定此container要吃第幾個gpu,
更詳細說明請參考Turn on GPU access with Docker Compose
提示:主要在count的設定
version: '3.8'
services:
python-1:
container_name: yolox-brand-1
image: busybox
command: nvidia-smi
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
pull_policy: if_not_present
restart: always
networks:
- internal
networks:
internal:
name: internal
driver: bridge